In machine vision systems (also termed herein “vision systems”), one or more cameras are used to perform vision system process on an object or surface within an imaged scene. These processes can include inspection, decoding of symbology, alignment and a variety of other automated tasks. More particularly, a vision system can be used to inspect a flat workpiece passing through an imaged scene. The scene is typically imaged by one or more vision system cameras that can include internal or external vision system processors that operate associated vision system processes to generate results. One or more of the cameras are calibrated to enable it/them to perform the vision task(s) with sufficient accuracy and reliability. A calibration plate can be employed to calibrate the camera(s), and establish a common (global) coordinate system (also termed a “motion coordinate system”) in which the pixel locations of all cameras are mapped to associated points in the coordinate system, thereby allowing an imaged feature in any camera to be located within the coordinate space. Such calibration can be achieved using known “hand-eye” calibration techniques.
A notable application for vision systems is in the assembly of objects (also termed “workpieces”) by an automated assembly mechanism that can include moving platforms (motion stages) to accurately support a workpiece at an assembly location and a manipulator (e.g. a robot hand or arm that performs a “pick-and-place” operations or another type of motion device/motion stage) to move another workpiece in an “assembly motion” to an overlying alignment location where it is assembled to the workpiece.
A particular application for a vision system in assembling workpieces involves aligning one planar workpiece with another planar workpiece. For example, a battery can be manipulated by the manipulator over and into a well on a cell phone residing on the motion stage in a pick-and-place operation.
Such vision systems are initially trained so that each workpiece in correct alignment with the other workpiece during runtime operation of the system. During train time, the workpieces are positioned at their respective stations so that, when assembled, the assembled workpieces have a desired mutual positional relationship. Following training, during runtime, the workpieces are repositioned in their respective stations, in order to account for any placement or dimensional variation, and assembled. When the workpiece-assembly process begins, the parts are thereby placed in same mutual positional relationship as they did at train time.
Current training techniques involve placing the workpieces in their respective stations, training the system, assembling them and measuring the assembly error on a separate measuring system such as a coordinate measuring machine (CMM). The measured error is either (a) used to guide the repositioning of the workpieces (by the manipulator and motion stage, respectively) and retraining the assembly system, or (b) on some assembly systems, incorporated as a correction factor that is applied during runtime to correct the position of one or both of the workpieces by their respective mechanism. The disadvantage with training by repositioning of the workpieces is that it is an iterative and time-consuming process. The user has to repeat the training step multiple times until the desired assembly characteristics are achieved. Likewise, the challenge with incorporating a correction factor into the assembly motion of the manipulator and/or motion stage is that there is no established relationship between coordinate frames of the CMM and the assembly system. Therefore, the computation of the correction factor is also an iterative and time-consuming process.